package com.dmw.service;

import com.dmw.dto.Dto;
import com.dmw.entity.DmUser;
import com.dmw.service.impl.UserConsumerServiceImpl;
import com.dmw.vo.userBuyTicketsVO.AddBuyTicketsVo;
import com.dmw.vo.userInfoPageVO.ModifyUserInfoVo;
import com.dmw.vo.userLoginVO.LoginVO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.Map;

@FeignClient(name = "p-user",fallback= UserConsumerServiceImpl.class)
public interface UserConsumerService {
    /**
     * 获取注册验证码接口
     * @param map
     * @return
     */
    @PostMapping("/code")
    public Dto code(@RequestBody Map<String, Object> map);

    /**
     * 验证手机号是否可用接口
     * @param map
     * @return
     */
    @PostMapping("checkEmail")
    public Dto checkEmail(@RequestBody Map<String, Object> map);

    /**
     * 使用邮箱/手机号注册接口
     * @param map
     * @return
     */
    @PostMapping("register")
    public Dto register(@RequestBody Map<String, Object> map);

    /**
     * 根据当前用户返回当前用户常用购票人列表
     * from 常用购票人页面 1
     * @return
     */
    @RequestMapping("/queryLinkUser")
    public Dto queryLinkUser(@RequestBody Map<String, Object> map);
    /**
     * 用户登录
     * @return
     */
    @PostMapping("/login")
    public Dto login(@RequestBody Map<String, Object> map);

    /**
     * 根据用户token返回用户信息
     * from 个人信息页面接口 1
     * @return
     */
    @RequestMapping("/queryUserInfoByToken")
    public Dto queryUserInfoByToken(@RequestBody Map<String, Object> map);

    /**
     * 修改用户信息
     * from 个人信息页面接口 2
     * @return
     */
    @RequestMapping("/modifyUserInfo")
    public Dto modifyUserInfo(@RequestBody Map<String, Object> map);

    /**
     * 添加常用购票人
     * from 常用购票人页面 2
     * @return
     */
    @RequestMapping("/addLinkUser")
    public Dto addLinkUser(@RequestBody Map<String, Object> map);

    /**
     * 验证购票人是否已经存在
     * from 常用购票人页面 3
     * @return
     */
    @RequestMapping("/queryLinkUserByIdCard")
    public Dto queryLinkUserByIdCard(@RequestBody Map<String, Object> map);

    /**
     * 删除联系人
     * from 常用购票人页面 4
     * @return
     */
    @RequestMapping("/deleteLinkUserById")
    public Dto deleteLinkUserById(@RequestBody Map<String, Object> map);

}
